/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package script;

import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;

/**
 *
 * @author dayana
 */
public class Script {

    public static String capitalize(String text) {
        if (!StringUtils.isEmpty(text)) {
            StringBuffer sbt = new StringBuffer();
            String[] partialText = text.split(" ");
            for (int i = 0; i < partialText.length; i++) {
                if (partialText[i].contains("-")) { //composite words
                    sbt.append(capitalizeWithLine(partialText[i]));
                } else {
                    sbt.append(capitalizeWord(partialText[i]));
                    sbt.append(" ");
                }
            }
            return sbt.toString().trim(); //only for entire phrase
        }
        return text;
    }

    public static String capitalizeWord(String word) {
        if (!StringUtils.isEmpty(word)) {
            StringBuffer sb = new StringBuffer();
            sb.append(String.valueOf(word.charAt(0)).toUpperCase());

            if (word.length() >= 2) {
                sb.append(word.substring(1).toLowerCase());
            }

            return sb.toString();
        }
        return word;
    }

    public static String capitalizeWithLine(String wordWithLine) {
        StringBuffer res = new StringBuffer();
        String[] partialTextWithLine = wordWithLine.split("-");
        for (int r = 0; r < partialTextWithLine.length; r++) {
            res.append(capitalizeWord(partialTextWithLine[r]));
            if (r + 1 < partialTextWithLine.length) //not append to end
            {
                res.append("-");
            }
        }
        return res.toString();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        File archivo = null;
        FileReader fr = null;
        BufferedReader br = null;
        FileWriter fichero = null;
        PrintWriter pw = null;
        String[] div = null;
        char[] opc = null;
        Pattern p = null;
        Matcher m = null;

        try {
            // Apertura del fichero y creacion de BufferedReader para poder
            // hacer una lectura comoda (disponer del metodo readLine()).
            archivo = new File("lista.sql");
            fr = new FileReader(archivo);
            br = new BufferedReader(fr);
            fichero = new FileWriter("precios.txt");
            pw = new PrintWriter(fichero);
            int j = 1;
            String aux = null;

            // Lectura del fichero
            String linea;

            aux = "INSERT INTO tratamiento (condicion,name,diente, cuadrante, precio) VALUES ('odontología','Amalgama Clase III','1','1',50);";
            System.out.println(aux);
            pw.println(aux);

            while ((linea = br.readLine()) != null) {

                if (j == 13) {
                    System.out.print("INSERT INTO tratamiento (condicion,name, cuadrante,diente, precio) VALUES (");
                    pw.print("INSERT INTO tratamiento (condicion,name,cuadrante, diente, precio) VALUES (");

                }
                if (j == 15) {
                    System.out.print(linea);
                    pw.print(linea);
                }

                if (j == 21) {
                    String lin = capitalize(linea);
                    System.out.print(lin.replaceFirst("[0-9]+", ""));
                    pw.print(lin.replaceFirst("[0-9]+", ""));

                    //Divimos la linea por espacios
                    div = lin.split("\\s+");

                    //Sabemos que el numero esta al comienzo de la linea
                    p = Pattern.compile("[0-9]+");
                    m = p.matcher(div[0]);

                    //Si el nombre tiene un numero, es porque el tratamiento 
                    //es para un diente y cuadrante especifico
                    if (m.find()) {

                        opc = div[0].toCharArray();

                        System.out.print("'" + opc[1] + "',");
                        System.out.print("'" + opc[2] + "',");
                        pw.print("'" + opc[1] + "',");
                        pw.print("'" + opc[2] + "',");
                    } else {
                        System.out.print("'',");
                        System.out.print("'',");
                        pw.print("'',");
                        pw.print("'',");
                    }


                }

                if (j == 22) {
                    String[] array = linea.split(",");
                    System.out.println(array[0] + ")");
                    pw.println(array[0] + ");");
                    j = 10;
                }
                j++;
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // En el finally cerramos el fichero, para asegurarnos
            // que se cierra tanto si todo va bien como si salta 
            // una excepcion.
            try {
                if (null != fr) {
                    fr.close();
                }

                if (null != fichero) {
                    fichero.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }

    }
}
